/*
 * (C) Copyright 2023 orchy
 * This file is licensed under the BSD-3-Clause license.
 * <https://spdx.org/licenses/BSD-3-Clause.html>
 */
#ifndef _WCTYPE_H
#define _WCTYPE_H

// # 7.25.1
// ## 7.25.1.2
#ifndef _WINT_T_DEFINED
typedef int wint_t;
#define _WINT_T_DEFINED
#endif

typedef int wctrans_t;
typedef int wctype_t;

// ## 7.25.1.3
#ifndef WEOF
#define WEOF (-1)
#endif

// # 7.25.2
// ## 7.25.2.1
// ### 7.25.2.1.1
int iswalnum(wint_t wc);

// ### 7.25.2.1.2
int iswalpha(wint_t wc);

// ### 7.25.2.1.3
int iswblank(wint_t wc);

// ### 7.25.2.1.4
int iswcntrl(wint_t wc);

// ### 7.25.2.1.5
int iswdigit(wint_t wc);

// ### 7.25.2.1.6
int iswgraph(wint_t wc);

// ### 7.25.2.1.7
int iswlower(wint_t wc);

// ### 7.25.2.1.8
int iswprint(wint_t wc);

// ### 7.25.2.1.9
int iswpunct(wint_t wc);

// ### 7.25.2.1.10
int iswspace(wint_t wc);

// ### 7.25.2.1.11
int iswupper(wint_t wc);

// ### 7.25.2.1.12
int iswxdigit(wint_t wc);

// ## 7.25.2.2
// ### 7.25.2.2.1
int iswctype(wint_t wc, wctype_t desc);

// ### 7.25.2.2.2
wctype_t wctype(const char* property);

// # 7.25.3
// ## 7.25.3.1
// ### 7.25.3.1.1
wint_t towlower(wint_t wc);

// ### 7.25.3.1.2
wint_t towupper(wint_t wc);

// ## 7.25.3.2
// ### 7.25.3.2.1
wint_t towctrans(wint_t wc, wctrans_t desc);

// ### 7.25.3.2.2
wctrans_t wctrans(const char* property);

#endif
